package negocio;


import dto.OperacionMantenimientoDTO;
import dto.VehiculoDTO;
import entities.OperacionMantenimientoEntity;
import entities.VehiculoEntity;

import java.util.ArrayList;
import java.util.List;
public class Vehiculo
{
	private int idVehiculo;
	private TipoTransporte tipo;
	private String infoRegistro;
	private float volumen;
	private float peso;
	private float tara;
	private String condicionesEspeciales;
	private List<OperacionMantenimiento> operaciones;
	private float precioKM;
	
	public Vehiculo(VehiculoEntity v) 
	{
		this.idVehiculo=v.getIdVehiculo();
		this.condicionesEspeciales=v.getCondicionesEspeciales();
		this.infoRegistro=v.getInfoRegistro();
		this.peso=v.getPeso();
		this.precioKM=v.getPrecioKM();
		this.tara=v.getTara();
		this.volumen=v.getVolumen();
		TipoTransporte t = new TipoTransporte(v.getTipo());
		this.tipo=t;
		List<OperacionMantenimientoEntity> omEnt = new ArrayList<OperacionMantenimientoEntity>();
		for (OperacionMantenimientoEntity opEnt : omEnt) 
		{
			OperacionMantenimiento op = new OperacionMantenimiento(opEnt);
			this.operaciones.add(op);
		}
	}
	
	public Vehiculo() 
	{
		
	}
	public int getIdVehiculo() {
		return idVehiculo;
	}
	public void setIdVehiculo(int idVehiculo) {
		this.idVehiculo = idVehiculo;
	}
	public TipoTransporte getTipo() {
		return tipo;
	}
	public void setTipo(TipoTransporte tipo) {
		this.tipo = tipo;
	}
	public String getInfoRegistro() {
		return infoRegistro;
	}
	public void setInfoRegistro(String infoRegistro) {
		this.infoRegistro = infoRegistro;
	}
	public float getVolumen() {
		return volumen;
	}
	public void setVolumen(float volumen) {
		this.volumen = volumen;
	}
	public float getPeso() {
		return peso;
	}
	public void setPeso(float peso) {
		this.peso = peso;
	}
	public float getTara() {
		return tara;
	}
	public void setTara(float tara) {
		this.tara = tara;
	}
	public String getCondicionesEspeciales() {
		return condicionesEspeciales;
	}
	public void setCondicionesEspeciales(String condicionesEspeciales) {
		this.condicionesEspeciales = condicionesEspeciales;
	}
	public List<OperacionMantenimiento> getOperaciones() {
		return operaciones;
	}
	public void setOperaciones(List<OperacionMantenimiento> operaciones) {
		this.operaciones = operaciones;
	}
	public float getPrecioKM() {
		return precioKM;
	}
	public void setPrecioKM(float precioKM) {
		this.precioKM = precioKM;
	}
	
	public VehiculoEntity toEntity()
	{
		VehiculoEntity ve = new VehiculoEntity();
		ve.setIdVehiculo(this.getIdVehiculo());
		return ve;
	}
	public VehiculoDTO toDTO() 
	{
		VehiculoDTO v = new VehiculoDTO();
		v.setCondicionesEspeciales(this.condicionesEspeciales);
		v.setIdVehiculo(this.idVehiculo);
		v.setInfoRegistro(this.infoRegistro);
		v.setPeso(this.peso);
		v.setPrecioKM(this.precioKM);
		v.setTara(this.tara);
		v.setVolumen(this.volumen);
		v.setTipo(this.tipo.toDTO());
		List<OperacionMantenimientoDTO> opDtoList = new ArrayList<OperacionMantenimientoDTO>();
		List<OperacionMantenimiento> opList = this.operaciones;
		if (!(opList==null))
		{
			for (OperacionMantenimiento op : opList) 
			{
				OperacionMantenimientoDTO opDto = new OperacionMantenimientoDTO();
				opDto.setFechaMantenimiento(op.getFechaMantenimiento());
				opDto.setListaTareas(op.getListaTareas());
				opDto.setPuntoControlar(op.getPuntoControlar());
				opDtoList.add(opDto);
			}
			v.setOperaciones(opDtoList);
		}else{
			v.setOperaciones(null);
		}
		
		return v;
	}
}
